home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Graphics / sKulpt / skulpt-src / Vars.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-08-28  |  5.8 KB  |  148 lines

  1. #define STRICT
  2.  
  3. // Includes standard Windows
  4. #include <windows.h>
  5. #include <windowsx.h>
  6. #include <time.h>
  7. #include <stdlib.h>
  8. #include <malloc.h>
  9. #include <memory.h>
  10. #include <stdio.h>
  11.  
  12. // Includes D3D
  13. #define  D3D_OVERLOADS
  14. #include <ddraw.h>
  15. #include <d3d.h>
  16. #include <d3dx.h>
  17. #include "D3DEnum.h"
  18.  
  19. // Constantes
  20. #include "const.h"
  21.  
  22. // Types
  23. #include "types.h"
  24.  
  25. // Variables globales
  26. HINSTANCE hInst;
  27. LPDIRECTDRAW7            lpDD = NULL;                // Interface IDirectDraw7 
  28. LPDIRECT3D7                lpD3D = NULL;                // Interface IDirect3D7 
  29. LPDIRECTDRAWSURFACE7    lpddsRender = NULL;            // Surface Rendering
  30. LPDIRECTDRAWSURFACE7    lpddsBackBuffer = NULL;        // Surface Backing store
  31. LPDIRECTDRAWSURFACE7    g_pddsZBuffer    = NULL;    // Surface Z-buffer  
  32. LPDIRECT3DDEVICE7        lpd3dDevice = NULL;            // Device D3D 
  33. RECT                    sRectangle;                    // Rectangle courant
  34. DDSURFACEDESC2            ddsd;
  35. GUID gDeviceGUID;
  36.  
  37. BOOL bActive  = FALSE;                                // Application active (non minimisée)
  38. BOOL bReady   = FALSE;                                // Application prête à faire un render
  39. BOOL bGrid      = FALSE;                                // Grille o/n
  40.  
  41. float fGridSize = 1.0;                                // Pas de la grille
  42.  
  43. D3DVECTOR Observer( 0.0f, 0.0f, 9.0f ),                // Coord. observateur par défaut
  44.           Target( 0.0f, 0.0f, 0.0f );                // Coord. cible par défaut
  45.  
  46. D3DVECTOR Cursor1( 5.0f, -5.0f, 5.0f ),                // Coord. curseur 1 par défaut
  47.           Cursor2( 1.0f, 1.0f, 1.0f ),                // Coord. curseur 2 par défaut
  48.           Cursor3( -1.0f, -1.0f, -1.0f );            // Coord. curseur 3 par défaut
  49.  
  50. D3DVECTOR vTracker;
  51.  
  52. D3DMATRIX    matView,                                // Matrice caméra
  53.             matProj,                                // Matrice caméra
  54.             matWorld;                                // Matrice caméra
  55.  
  56. float    fXmin = -10.,                                // Espace de travail triview : X min
  57.         fXmax = 10.,                                // Espace de travail triview : X max
  58.         fYmin = -10.,                                // Espace de travail triview : Y min
  59.         fYmax = 10.,                                // Espace de travail triview : Y max
  60.         fZmin = -10.,                                // Espace de travail triview : Z min
  61.         fZmax = 10.;                                // Espace de travail triview : Z max
  62.  
  63. SkulptGadget  gAddPoint,                                  // Gadget Sculpt3D : Ajouter point
  64.         gCenter,                                    // Gadget Sculpt3D : Centrer la vue sur le curseur
  65.         gGoDown,                                    // Gadget Sculpt3D : Descendre (dans la vue courante)
  66.         gGoLeft,                                    // Gadget Sculpt3D : Aller à gauche (idem)
  67.         gGoUp,                                        // Gadget Sculpt3D : Monter (idem)
  68.         gGoRight,                                    // Gadget Sculpt3D : Aller à droite (idem)
  69.         gGrab,                                        // Gadget Sculpt3D : Activer pince
  70.         gMakeTri,                                    // Gadget Sculpt3D : Créer triangle (entre les 3 curseurs)
  71.         gReverse,                                    // Gadget Sculpt3D : ???
  72.         gRotAnti,                                    // Gadget Sculpt3D : Rotation anti clockwise
  73.         gRotClock,                                    // Gadget Sculpt3D : Rotation clockwise
  74.         gZoomIn,                                    // Gadget Sculpt3D : Zoomer en avant
  75.         gZoomOut;                                    // Gadget Sculpt3D : Zoomer en arrière
  76.  
  77. HWND    hWndPersp,                                    // Handle fenêtre vue 3D
  78.         hWndTop,                                    // Handle fenêtre vue de dessus
  79.         hWndFace,                                    // Handle fenêtre vue de face
  80.         hWndRight,                                    // Handle fenêtre vue de droite
  81.         hWndMenu,                                    // Handle fenêtre menu
  82.         hWndTrace;                                    // Handle sous-fenêtre listbox trace
  83.  
  84. gSommet Vertices[XDC_NUMPT];                        // Tableau global de points
  85. gEdge    Edges[XDC_NUMEDGE];                            // Tableau global de segments
  86. gTri    Triangles[XDC_NUMTRI];                        // Tableau global de triangles
  87. gLamp    Lampes[XDC_NUMLAMP];                        // Tableau global de lampes
  88. gObject    Objects[XDC_NUMOBJECTS];                    // Tableua global d'objets
  89. gMtrl   Materials[XDC_NUMMTRL];
  90.  
  91. int iVertLastUsed = -1, iVertFirstAvailable = 0;
  92. int iEdgeLastUsed = -1, iEdgeFirstAvailable = 0;
  93. int iTriaLastUsed = -1, iTriaFirstAvailable = 0;
  94. int iLampLastUsed = -1, iLampFirstAvailable = 0;
  95. int iObjtLastUsed = -1, iObjtFirstAvailable = 0;
  96. int iMtrlLastUsed = -1, iMtrlFirstAvailable = 0;
  97.  
  98. BOOL bCoords = FALSE;                                // Afficher les coordonnées o/n
  99.  
  100. D3DCOLOR    cAmbient = 0xffffffff,                    // Couleur lumière ambiante
  101.             cBack = 0x00500000;                        // Couleur arrière plan
  102.  
  103. DWORD dFillMode = D3DFILL_SOLID;                    // Mode de dessin 3D par défaut (point, fil, face)
  104. DWORD dZBuf = D3DZB_TRUE;                            // Z-Buffer (o/n)
  105. BOOL  bAlpha = FALSE;                                // Alpha blending o/n
  106. BOOL  bSpecular = FALSE;
  107. DWORD dCull = D3DCULL_CCW;
  108. BOOL bAntialias = TRUE;
  109.  
  110. char *sLogo = "wcLogo";                                // Nom de la classe de fenêtre logo
  111. char *sMenu = "wcMenu";                                // Nom de la classe de fenêtre menu
  112. char *sPersp = "wcPersp";                            // Nom de la classe de fenêtre 3D
  113. char *sPlanar = "wcPlanar";                            // Nom de la classe de fenêtre 2D
  114.  
  115. char cTool = XDC_TOOL_NONE;                            // Outil courant : NONE, GRAB, SELECT, CURVE, MAGNET
  116.  
  117. D3DEnum_DeviceInfo *m_pDeviceInfo;
  118.  
  119. char cTitle[255], cString[255];
  120.  
  121. long lWActive;                                        // HWND de la fenêtre 2D active (face, top, right)
  122.  
  123. int iHoles;                                            // Nombre de trous dans une courbe à trianguler
  124. HWND hHoleDlgActive = NULL;                            // Booléen indiquant à la proc de gestion des fenêtres 2D si les clics doivent être passés à la dlgproc de gestion des trous dans le fill pour les identifier
  125. double dHoles[XDC_MAX_HOLES * 2];                    // suite de iHoles couples XY des trous
  126. SMALLBOOL bFillAndRemoveEdges = TRUE;                // Si TRUE, fill() doit supprimer les arêtes après triangulation d'une courbe
  127.  
  128. BOOL bTracking = FALSE;                             // Poursuite curseur en cours o/n (WM_LBUTTONDOWN / WM_MOUSEMOVE)
  129.  
  130. #ifdef _AMIGA_
  131. struct Library *GadToolsBase    = (struct Library *) NULL;
  132. struct Library *UtilityBase     = (struct Library *) NULL;
  133. struct Library *AslBase         = (struct Library *) NULL;
  134. struct Library *AmigaGuideBase  = (struct Library *) NULL;
  135. struct Library *DataTypesBase   = (struct Library *) NULL;
  136. struct Library *IconBase        = (struct Library *) NULL;
  137. struct Library *CyberGfxBase    = (struct Library *) NULL;
  138. W3D_Context *hW3DContext = NULL;
  139. W3D_Scissor sScissor;
  140. ULONG l2DWinSigMask;
  141. #ifndef __PPC__
  142. struct Library *Warp3DBase      = (struct Library *) NULL;
  143. #else
  144. struct Library *Warp3DPPCBase   = (struct Library *) NULL;
  145. #endif
  146. struct Task    *hApp = (struct Task *) NULL;
  147. #endif
  148.